1. Field of the Invention
The invention relates generally to data processing systems and, in particular, to systems that implement business plans as a collection of business logic rules.
2. Background Information
Many businesses use customized application software to control customer transactions, billing, and so forth. The software is designed to implement the particular business plans or rules of the user companies. For a company that provides a monthly service, such as, for example, telecommunications services, customized billing software controls customer billing operations using predetermined parameters that define customer rate plans. The parameters may be, for example, the number of minutes used per month, home calling areas, roaming rates, and so forth.
A financial services company may utilize customized application software to control trading. The application software uses predetermined parameters to determine when and if a particular type of trade is to be made, what market data is generated for customers and/or brokers, and so forth. Companies providing products may also use customized application software to control business operations relating to, for example, the warehousing of raw materials, when, if, and under what terms to sell to various customers, and so forth.
The customized application software operates in accordance with the business plans, or business logic rules, set by the user company. The application relies on a defined set of parameters that the application manipulates in accordance with the business logic rules. In the example of the telecommunications company, the application software controls the rates at which telecommunications customers are billed for particular telecommunication services based on the total number of minutes used per month, the home areas of the respective customers, associated roaming rates, and so forth. The set of parameters that define the billing plans are hard-coded into the application program, and the company can then selectively set associated values for the various parameters to distinguish, for example, between the various billing rate plans offered by the company. The application program thus allows the user company to selectively set the values for the minimum number of minutes that are associated with the various discount rates, and so forth, without requiring the application program to be re-written and re-compiled.
The application software can not, however, accommodate new business plans that either re-define the existing hard-coded parameters or include new parameters. For example, the application software must be re-written if the telecommunications company discussed above changes its billing plans to charge different rates for minutes used during particular hours. Similarly, the billing application software must be re-written if the company decides to offer new types of services, such as data transmission services, internet services, and so forth. The application software is thus re-written to include the various parameters associated with the new data transmission services and internet services, and/or the parameters associated with the time of day/week billing rates, and so forth.
For a financial services company, the application software is customized to handle the various validation, matching, execution and post-execution activities that the company uses to control the trading of particular types of securities. The application software must be re-written if the company thereafter changes the criteria it uses to, for example, validate a trade, or if the company decides to trade in a new type of security. The various validation, matching, execution and post-execution rules must be revised to include or accommodate the new criteria and/or the new type of security, as well as the revised criteria for the gathering of associated market data.
The updating of complex, customized application software is both time consuming and costly. Further, due to the complexity of the undertaking, the re-writing of the program is prone to errors. The updating must typically be performed by the company that provided the software, which is not only costly but can be delayed since the user must rely on the availability of outside personnel to do the work. In addition, re-writing and re-compiling the code may adversely affect the performance of the application in ways in which are not readily apparent, and thus, the testing of the software is critical. Longer delays are incurred if, after testing, the application code must be re-written to correct errors, and again tested.
The time it takes to update and test and, as applicable, revise and re-test, the application software may cause rather significant delays in the offering of new services and/or billing plans to customers. In response, the customers may change service providers in order to take advantage of the newer plans and/or services offered by competitors. Hidden errors in the re-written application program may also adversely affect customer relations and/or the integrity of the services provided. Such an error may, for example, result in duplicate or incorrect billing for particular services, the inability to track or confirm particular financial transactions, and so forth.
What is needed is a system that allows a user to revise business logic rules, without requiring the re-writing and re-compiling of the application software.